package de.thm.softwareprojekt.veranstaltung;

import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import de.thm.softwareprojekt.personen.CAdresse;
import de.thm.softwareprojekt.personen.kunde.*;
import de.thm.softwareprojekt.personen.mitarbeiter.veranstaltungsmitarbeiter.CVeranstaltungsmitarbeiter;
import de.thm.softwareprojekt.produkt.veranstaltungsprodukt.*;

// Datum von Calendar in Date u. Time umgewandelt

public class CVeranstaltung {
	
	private int veranstaltungsnr ;
	private CKunde kunde;
	private Timestamp beginn;
	private Timestamp ende;
	private CAdresse adresse;
	private int gaesteanzahl;
	private String veranstaltungsart;
	private int imFreien;
	private ArrayList<CVeranstaltungsprodukt> produkte;
	private String bemerkungen;
	private String interneInformationen;
	private ArrayList<CVeranstaltungsmitarbeiter> personal;
	private String status;
	private int beimKunden;
	
	public CVeranstaltung() {
		this.veranstaltungsnr = -1;
		this.kunde = new CKunde();
		this.adresse = new CAdresse();
		this.setBeginn(null);
        this.setEnde(null);
		this.gaesteanzahl = 0;
		this.veranstaltungsart = "";
		this.imFreien = 0;
		this.produkte = new ArrayList<CVeranstaltungsprodukt>();
		this.personal = new ArrayList<CVeranstaltungsmitarbeiter>();
		this.bemerkungen = "";
		this.interneInformationen = "";
		this.status = "";
		this.beimKunden = 0;
	}
	
	public CVeranstaltung(int vnr, CKunde kun, Timestamp beginn, Timestamp ende, CAdresse adr, int anz, String art, int imF, ArrayList<CVeranstaltungsprodukt> produktList, ArrayList<CVeranstaltungsmitarbeiter> personal, String bemerk, String info, String status, int beimKunden){
		this.veranstaltungsnr = vnr;
		this.kunde = kun;
		this.adresse = adr;
		this.setBeginn(beginn);
		this.setEnde(ende);
		this.gaesteanzahl = anz;
		this.veranstaltungsart = art;
		this.imFreien = imF;
		this.produkte = produktList;
		this.personal = personal;
		this.bemerkungen = bemerk;
		this.interneInformationen = info;
		this.status = status;
		this.beimKunden = beimKunden;
	}
	
	public int getVeranstaltungsnr(){
		return veranstaltungsnr;
	}
	
	public void setVeranstaltungsnr(int veranstalungsnr){
		this.veranstaltungsnr = veranstalungsnr;
	}
	
	public CKunde getKunde(){
		return kunde;
	}
	
	public int getGaesteanzahl(){
		return gaesteanzahl;
	}
	
	public void setGaesteanzahl(int gaesteanzahl){
		this.gaesteanzahl = gaesteanzahl;
	}
	public String getVeranstaltungsart(){
		return veranstaltungsart;
	}
	
	public void setVeranstaltungsart(String veranstalungsart){
		this.veranstaltungsart = veranstalungsart;
	}

	public ArrayList<CVeranstaltungsprodukt> getProdukte(){
		return produkte;
	}
	
	public int getImFreien(){
		return imFreien;
	}
	
	public void setImFreien(int imFreien){
		this.imFreien = imFreien;
	}
	public String getBemerkungen(){
		return bemerkungen;
	}
	
	public void setBemerkungen(String bemerkungen){
		this.bemerkungen = bemerkungen;
	}

	public String toString(){
		SimpleDateFormat formatter = new SimpleDateFormat("dd.MM.yyyy");
		return this.getVeranstaltungsnr() +" -- Datum: "+ formatter.format(this.getBeginn()) +" -- Kunde: "+ this.getKunde().getName() +" -- Status: "+ this.getStatus();
	}

	public CAdresse getAdresse() {
		return adresse;
	}

	public void setAdresse(CAdresse adresse) {
		this.adresse = adresse;
	}

	public String getInterneInformationen() {
		return interneInformationen;
	}

	public void setInterneInformationen(String interneInformationen) {
		this.interneInformationen = interneInformationen;
	}

	public ArrayList<CVeranstaltungsmitarbeiter> getPersonal() {
		return personal;
	}

	public void setPersonal(ArrayList<CVeranstaltungsmitarbeiter> personal) {
		this.personal = personal;
	}

	public void setKunde(CKunde kunde) {
		this.kunde = kunde;
	}

	public void setProdukte(ArrayList<CVeranstaltungsprodukt> produkte) {
		this.produkte = produkte;
	}

	public String getStatus() {
		return status;
	}

	public void setStatus(String status) {
		this.status = status;
	}
	
	public int isBeimKunden(){
		return beimKunden;
	}
	public void setBeimKunden(int beimKunden){
		this.beimKunden = beimKunden;
	}

	public Timestamp getBeginn() {
		return beginn;
	}

	public void setBeginn(Timestamp beginn) {
		this.beginn = beginn;
	}

	public Timestamp getEnde() {
		return ende;
	}

	public void setEnde(Timestamp ende) {
		this.ende = ende;
	}
}

